﻿using System;
using System.Text;
using System.Collections.Generic;
using System.Linq;
using Microsoft.VisualStudio.TestTools.UnitTesting;
using System.Net;
using System.IO;
using System.Web.Script.Serialization;

namespace TestPortalMainService
{
    [TestClass]
    public class TestCrearUsuario
    {
        [TestMethod]
        public void TestCreaUsuario()
        {
            string postdata = "{\"Email\":\"alberto@gmail.com\",\"Password\":\"betolei\",\"Nombre\":\"Alberto\", \"Apellido\":\"Valiente\", \"Ocupacion\":\"Ingenioso\",\"Carrera\":\"Ingenieria\"}"; //JSON
            byte[] data = Encoding.UTF8.GetBytes(postdata);
            HttpWebRequest req = (HttpWebRequest)WebRequest
                .Create("http://localhost:50358/Usuario.svc/Usuarios");
            req.Method = "POST";
            req.ContentLength = data.Length;
            req.ContentType = "application/json";
            var reqStream = req.GetRequestStream();
            reqStream.Write(data, 0, data.Length);
            var res = (HttpWebResponse)req.GetResponse();
            StreamReader reader = new StreamReader(res.GetResponseStream());
            string usuarioJson = reader.ReadToEnd();
            JavaScriptSerializer js = new JavaScriptSerializer();
            Usuario usuarioCreado = js.Deserialize<Usuario>(usuarioJson);
            Assert.AreEqual("alberto@gmail.com", usuarioCreado.Email);
            Assert.AreEqual("betolei", usuarioCreado.Password);
            Assert.AreEqual("Alberto", usuarioCreado.Nombre);
            Assert.AreEqual("Valiente", usuarioCreado.Apellido);
            Assert.AreEqual("Ingenioso", usuarioCreado.Ocupacion);
            Assert.AreEqual("Ingenieria", usuarioCreado.Carrera);
        }
    }
}
